import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import { resolve } from 'path'

export default defineConfig({
  plugins: [
    vue(),
    createSvgIconsPlugin({
      // 指定缓存文件
      iconDirs: [resolve(process.cwd(), 'src/assets/svg')],
      // 指定symbolId格式
      symbolId: 'icon-[dir]-[name]'
    })
  ],
  // 项目根目录，可以是绝对路径也可以是相对配置文件所在的路径
  // root?: '',
  // 避免打包访问后空白页面， 要加上， 不然线上也访问不了
  base: './',
  // 运行编译模式 'development' || 'production'
  mode: 'development',
  // 路径别名
  resolve: {
    alias: {
      '@': resolve(__dirname, './src')
    }
  },
  // build选项
  build: {
    // base:'/', // 基础路径
    target: 'modules', // 浏览器兼容模块
    outDir: 'dist', // 输出路径
    assetsDir: 'assets', // 静态资源路径
    cssCodeSplit: true, //css代码拆分,禁用则所有样式保存在一个css里面
    sourcemap: false, //是否构建source map 文件
    terserOptions: {
      // 生产环境移除console
      compress: {
        drop_console: true
      }
    }
  },
  // 开发服务配置
  server: {
    // 端口号
    port: 3000,
    // 监听所有地址
    host: '0.0.0.0',
    // 启服务自动打开浏览器
    open: false,
    // 允许跨域
    cors: true,
    proxy: {
      '/dev-api': {
        target: 'http://127.0.0.0:8080',
        changeOrigin: true,
        ws: true,
        rewrite: (path) => path.replace(/^\/dev-api/, '')
      },
      '/dev/file': {
        target: 'http://xxx.x.xxx.xxx:9300',
        changeOrigin: true,
        ws: true,
        rewrite: (path) => path.replace(/^\/dev/, '')
      }
    }
  }
})
